#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>

typedef int HPDataType;

typedef struct Heap {

	HPDataType* a;
	int size;
	int capecity;
}HP;

void Swap(HPDataType* p1, HPDataType* p2);
void HPjustDown(HPDataType* a, int n, int parent);
void HPjustUp(HPDataType* a, int child);

void HPInIt(HP* php);
void HPDestroy(HP* php);
void HPPush(HP* php, HPDataType x);
void HPPop(HP* php); 
HPDataType HPTop(HP* php);
int HeapSize(HP* php);

bool HPEmpty(HP* php);
void HeapSort(int* a, int n);
